"""调试数据追加功能"""

import json
from app.models.brain_wave import BrainWave
from datetime import datetime

def test_data_append():
    """测试数据追加功能"""
    print("测试数据追加功能...")
    
    # 创建测试记录
    test_id = 9999
    
    # 删除可能存在的测试记录
    try:
        existing = BrainWave.get(BrainWave.id == test_id)
        existing.delete_instance()
        print(f"删除已存在的测试记录: {test_id}")
    except:
        pass
    
    # 创建新记录
    brain_wave = BrainWave.create(
        id=test_id,
        room_id=99,
        user_id=None,
        start_time=datetime.now(),
        total_seconds=0
    )
    print(f"创建测试记录: {brain_wave.id}")
    
    # 测试数据追加
    test_data = {
        "frame_rate": 250,
        "wave": {
            "frames": [1.0, 2.0, 3.0, 4.0, 5.0]
        },
        "filtered": {
            "frames": [0.1, 0.2, 0.3, 0.4, 0.5]
        }
    }
    
    print("追加第一批数据...")
    brain_wave.append_wave_data('delta_data', test_data)
    brain_wave.save()
    
    # 检查数据
    brain_wave = BrainWave.get(BrainWave.id == test_id)
    delta_str = brain_wave.delta_data
    print(f"Delta数据: {delta_str}")
    
    if delta_str:
        delta_data = json.loads(delta_str)
        print(f"Wave frames数量: {len(delta_data.get('wave', {}).get('frames', []))}")
        print(f"Filtered frames数量: {len(delta_data.get('filtered', {}).get('frames', []))}")
    
    # 追加第二批数据
    test_data2 = {
        "frame_rate": 250,
        "wave": {
            "frames": [6.0, 7.0, 8.0, 9.0, 10.0]
        },
        "filtered": {
            "frames": [0.6, 0.7, 0.8, 0.9, 1.0]
        }
    }
    
    print("\n追加第二批数据...")
    brain_wave.append_wave_data('delta_data', test_data2)
    brain_wave.save()
    
    # 再次检查数据
    brain_wave = BrainWave.get(BrainWave.id == test_id)
    delta_str = brain_wave.delta_data
    print(f"Delta数据: {delta_str}")
    
    if delta_str:
        delta_data = json.loads(delta_str)
        print(f"Wave frames数量: {len(delta_data.get('wave', {}).get('frames', []))}")
        print(f"Filtered frames数量: {len(delta_data.get('filtered', {}).get('frames', []))}")
        print(f"Wave frames内容: {delta_data.get('wave', {}).get('frames', [])}")
    
    # 清理测试数据
    brain_wave.delete_instance()
    print(f"\n清理测试记录: {test_id}")

if __name__ == "__main__":
    test_data_append()